/*
 *  author: Freddy SInarahua Apuela
 *  date: 01/04/2010
 */
var dsUsuario=null;
var registroUsuario = null;
var regPersonaActual =null;

function usuario(){
    var frmBuscarUsuario =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    dsUsuario=new Ext.data.Store({
        autoDestroy: true,
        url: "mantenimientos/usuario/jsonListaUsuarioApeNom.jsp",
        reader: new Ext.data.JsonReader({
            root: "tablaUsuarios",
            fields:[{
                name: "fila",
                type: "int"
            },{
                name: "nusua_identificador",
                type: "int"
            },{
                name: "cusua_username",
                type: "string"
            },{
                name: "busua_activo",
                type: "boolean"
            },{
                name: "npepo_identificador",
                type: "integer"
            },{
                name: "cpers_apepaterno",
                type: "string"
            },{
                name: "cpers_apematerno",
                type: "string"
            },{
                name: "cpers_nombre",
                type: "string"
            },{
                name: "ndepe_identificador",
                type: "integer"
            },{
                name: "cdepe_nombre",
                type: "string"
            },{
                name: "cdepe_siglas",
                type: "string"
            }]
        })
    });
    dsUsuario.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Error DIRPEN:0301: No se pudo cargar DataStore dsUsuario");
    });
    dsUsuario.on("load",function(store, record,options){
        if (dsUsuario.getCount()<1){
            Ext.MessageBox.confirm("Confirmación", "No existe usuario, Desea Crearlo?", function(button){
                if(button=="yes"){
                    gestionarUsuario();
                }
            });
        }
    });
    dsUsuario.reload({
        params:{
            cusua_apenom:""
        }
    });
    var grdUsuario=new Ext.grid.GridPanel({
        height: 280,
        store: dsUsuario,
        columns:[{
            header: "Reg",
            dataIndex: "fila",
            sortable:true,
            width: 30
        },{
            header: "User Name",
            dataIndex: "cusua_username",
            sortable:true,
            width: 100
        },{
            header: "Apellido Paterno",
            dataIndex: "cpers_apepaterno",
            sortable:true,
            width: 120
        },{
            header: "Apellido Materno",
            dataIndex: "cpers_apematerno",
            sortable:true,
            width: 120
        },{
            header: "Nombres",
            dataIndex: "cpers_nombre",
            sortable:true,
            width: 130
        },{
            header: "Dependencia",
            dataIndex: "cdepe_nombre",
            sortable:true,
            width: 260
        }]
    });

    var seleccionUsuario=grdUsuario.getSelectionModel();
    seleccionUsuario.on("rowselect",function(sm,fila,registro){
        registroUsuario=registro;
    });

    new Ajax.Request("mantenimientos/usuario/frmBuscarUsuario.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmBuscarUsuario.html=transport.responseText;
            var winGestionarUsuario = new Ext.Window({
                title:'Gestionar Usuarios Sistema',
                closeAction:'destroy',
                id: 'winGestionarUsuario',
                width:800,
                height: 400,
                x:0,
                y:0,
                shim:false,
                maximizable:false,
                resizable: false,
                animCollapse:false,
                layout: 'border',
                items:[{
                    region: 'north',
                    height: 80,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmBuscarUsuario,
                    bbar:[{
                        text:'Agregar',
                        iconCls:'icon-add',
                        handler: function(){
                            gestionarUsuario();
                        }
                    },{
                        text:'Buscar',
                        iconCls:'icon-preview',
                        handler: function(){
                            usuario_buscar();
                        }
                    }]
                },{
                    region: 'center',
                    height: 200,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'fit',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items: grdUsuario
                }]
            });
            winGestionarUsuario.show();
            winGestionarUsuario.focus();
        }
    });
}

function usuario_buscar(){
    dsUsuario.reload({
        params:{
            cusua_apenom:document.getElementById("txtapenom").value
        }
    });

}

function gestionarUsuario(){
    regPersonaActual = null;
    var dsPersonal = new Ext.data.Store({
        url: "digitalizar/obtener-personal.jsp",
        autoDestroy: true,
        reader: new Ext.data.JsonReader({
            root: "personas",
            fields:[{
                name: "id"
            },{
                name: "nombreCompleto"
            },{
                name: "cpers_codofin",
                type: "string"
            },{
                name: "cpers_nrocip",
                type: "string"
            },{
                name: "cpers_unidad",
                type: "string"
            },{
                name: "cpers_nrodni",
                type: "string"
            },{
                name: "cgrad_descripcion",
                type: "string"
            }]
        })
    });

    var grdPersonal = new Ext.grid.GridPanel({
        id: "grdPersonal",
        store: dsPersonal,
        height: 300,
        border: true,
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            searchText: 'Filtrar sobre el resultado',
            iconCls:false,
            minLength:2,
            width: 350
        })],
        columns:[{
            header: "DNI",
            dataIndex: "cpers_nrodni",
            sortable:true,
            width: 80
        },{
            header: "Apellidos y Nombres",
            dataIndex: "nombreCompleto",
            width: 350
        },{
            header: "Nro CIP",
            dataIndex: "cpers_nrocip",
            sortable:true,
            width: 100
        },{
            header: "GRADO",
            dataIndex: "cgrad_descripcion",
            sortable:true,
            width: 150
        }],
        tbar:['']
    });

    grdPersonal.on("rowclick", function(grid,rowIndex,e){
        regPersonaActual = dsPersonal.getAt(rowIndex);
    });

    grdPersonal.on("rowdblclick", function(grid,rowIndex,e){
        seleccionarPersonaUsuario();
    });

    var frmBuscarPersonal = new Ext.Panel({
        bodyStyle: "background-color:#DFE8F6; border:0",
        autoLoad: "digitalizar/frmBuscarPersonal.html"
    });

    var pnlBuscarPersonal = new Ext.Panel({
        items:[frmBuscarPersonal,grdPersonal]
    });

    var win = new Ext.Window({
        id: "winBuscarPersonal",
        modal: true,
        title:'Buscar en Maestro Policial - MASPOL',
        closeAction:'destroy',
        width:700,
        height: 400,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        items:[pnlBuscarPersonal],
        bbar:[{
            text: "Seleccionar",
            iconCls:'icon-selector',
            handler: function(){
                seleccionarPersonaUsuario();
            }
        },'-',{
            text:'Cancelar',
            iconCls:'icon-cancel',
            handler: function(){
                var winBuscarPersonal = Ext.getCmp("winBuscarPersonal");
                winBuscarPersonal.destroy();
            }
        }]
    });
    win.show();
}

function filtrarPersonalMaspol(){
    if ($("apellidoPaterno").value!="" || $("apellidoMaterno").value!="" || $("nombres").value !="" ){
        if ($("apellidoPaterno").value.length >= 3 || $("apellidoMaterno").value.length >= 3 || $("nombres").value.length >= 3 ){
            obtenerPersonal();
        }else{
            alert("Debe ingresar por lo menos 3 letras en algun criterio para realizar la busqueda");
        }
    }else{
        alert("Debe ingresar un criterio de busqueda");
    }
}

function obtenerPersonal() {
    var grdPersonal = Ext.getCmp("grdPersonal");
    var dsPersonal = grdPersonal.getStore();
    var form = document.getElementById("frmBuscarPersonal");
    var apellidoPaterno = form.apellidoPaterno.value;
    var apellidoMaterno = form.apellidoMaterno.value;
    var nombres = form.nombres.value;
    dsPersonal.load({
        params: {
            apellidoPaterno: apellidoPaterno,
            apellidoMaterno: apellidoMaterno,
            nombres: nombres
        }
    });
}

function seleccionarPersonaUsuario(){
    var winBuscarPersonal = Ext.getCmp("winBuscarPersonal");
    winBuscarPersonal.destroy();
    var frmPersonalUsuario= new Ext.Panel({
        bodyStyle: "background-color:#DFE8F6; border:0",
        autoLoad: {
            url: "mantenimientos/usuario/frmGestionarUsuario.html",
            callback: function(el,success,response,options){
                document.getElementById("txtPersonalApenom").value=regPersonaActual.get("nombreCompleto");
                document.getElementById("txtIdentificadorPersona").value=regPersonaActual.get("id");
                fn_CargarDependencias();
                fn_cargarPerfiles();
            }
        }
    });


    var winAgregarUsuario = new Ext.Window({
        id: "winAgregarUsuario",
        modal: true,
        title:'Gestionar Usuario',
        closeAction:'destroy',
        width:700,
        height: 300,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        items:frmPersonalUsuario,
        bbar:[{
            text: "Grabar",
            iconCls:'icon-save',
            handler: function(){
                fn_AgregarUsuarioNuevo();
            }
        },'-',{
            text:'Cancelar',
            iconCls:'icon-cancel',
            handler: function(){
                var winAgregarUsuario = Ext.getCmp("winAgregarUsuario");
                winAgregarUsuario.destroy();
            }
        }]
    });
    winAgregarUsuario.show();
    
}

function fn_AgregarUsuarioNuevo(){
    var apenom=document.getElementById("txtPersonalApenom").value;
    var dependencia="";
    if (document.getElementById("ndepe_destino_nivel5").value.length>0){
        dependencia=document.getElementById("ndepe_destino_nivel5").value;
    }else{
        if (document.getElementById("ndepe_destino_nivel4").value.length>0){
            dependencia=document.getElementById("ndepe_destino_nivel4").value;
        }else{
            if (document.getElementById("ndepe_destino_nivel3").value.length>0){
                dependencia=document.getElementById("ndepe_destino_nivel3").value;
            }else{
                if (document.getElementById("ndepe_destino_nivel2").value.length>0){
                    dependencia=document.getElementById("ndepe_destino_nivel2").value;
                }else{
                    alert("No se ha seleccionado el destino o no se encuentra disponible para recibir documentos");
                    
                }
            }
        }
    }
    if (dependencia!=""){
        new Ajax.Request("mantenimientos/usuario/jsonAgregarUsuario.jsp",{
            method:"post",
            parameters: {
                nperf_identificador:document.getElementById("cboPerfil").value,
                cuser_username:document.getElementById("txtUsuario").value,
                cuser_clave:document.getElementById("txtClave").value,
                npers_identificador:document.getElementById("txtIdentificadorPersona").value,
                ndepe_identificador:dependencia
            },
            onSuccess: function(transport){
                var operacion = transport.responseText.evalJSON();
                if (operacion.resultado){
                    Information("Aviso del Sistema","El usuario se creo correctamente");
                }else{
                    Information("Aviso del Sistema","No se crear el usuario");
                }
                var winAgregarUsuario = Ext.getCmp("winAgregarUsuario");
                winAgregarUsuario.destroy();
                dsUsuario.reload({
                    params:{
                        cusua_apenom:apenom
                    }
                });
            },
            onFailure:function(transport){
                Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
            }
        });
    }
}

function  fn_CargarDependencias(){
    new Ajax.Request("listaDependenciasTipo.jsp",{
        method: "post",
        asynchronous:false,
        parameters:{
            ntipounidad:1
        },
        onSuccess: function(transport){
            var eiSelect = $("ndepe_destino_nivel1");
            var eiSelect2 = $("ndepe_destino_nivel2");
            var eiSelect3 = $("ndepe_destino_nivel3");
            var eiSelect4 = $("ndepe_destino_nivel4");
            var eiSelect5 = $("ndepe_destino_nivel5");
            removeAllOptions(eiSelect);
            removeAllOptions(eiSelect2);
            removeAllOptions(eiSelect3);
            removeAllOptions(eiSelect4);
            removeAllOptions(eiSelect5);
            eiSelect.disabled=true;
            eiSelect2.disabled=true;
            eiSelect3.disabled=true;
            eiSelect4.disabled=true;
            eiSelect5.disabled=true;
            var lstDependencias = transport.responseText.evalJSON();
            if (lstDependencias.dependencia.length>0){
                eiSelect.disabled=false;
            }
            for (i=0;i<lstDependencias.dependencia.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstDependencias.dependencia[i].ndepeIdentificador);
                eOption.appendChild(document.createTextNode(lstDependencias.dependencia[i].cdepeNombre));
                eiSelect.appendChild(eOption);
            }
            eiSelect.value="1";
            if (eiSelect.value!=null){
                fn_cargarDivisionesUsuario();
            }
        }
    });
}

function fn_cargarDivisionesUsuario(){
    var division = document.getElementById("ndepe_destino_nivel1").value;
    if (division!=null && division!=""){
        new Ajax.Request("listaDependenciasDpto.jsp",{
            method: "post",
            asynchronous:false,
            parameters:{
                ndepeid:division
            },
            onSuccess: function(transport){
                var eiSelect = $("ndepe_destino_nivel2");
                removeAllOptions(eiSelect);
                var eiSelect3 = $("ndepe_destino_nivel3");
                var eiSelect4 = $("ndepe_destino_nivel4");
                var eiSelect5 = $("ndepe_destino_nivel5");
                removeAllOptions(eiSelect3);
                removeAllOptions(eiSelect4);
                removeAllOptions(eiSelect5);
                eiSelect.disabled=true;
                eiSelect3.disabled=true;
                eiSelect4.disabled=true;
                eiSelect5.disabled=true;
                var lstDependencias = transport.responseText.evalJSON();
                if (lstDependencias.dependencia.length>0){
                    eiSelect.disabled=false;
                }
                for (i=0;i<lstDependencias.dependencia.length;i++){
                    var eOption = document.createElement("option");
                    eOption.setAttribute("value", lstDependencias.dependencia[i].ndepeIdentificador);
                    eOption.appendChild(document.createTextNode(lstDependencias.dependencia[i].cdepeNombre));
                    eiSelect.appendChild(eOption);
                }
                if(eiSelect.value != null){
                    fn_cargarDepartamentosUsuario();
                }
            }
        });
    }
}

function fn_cargarDepartamentosUsuario(){
    var departamento = document.getElementById("ndepe_destino_nivel2").value;
    if (departamento!=null && departamento!=""){
        new Ajax.Request("listaDependenciasOficina.jsp",{
            method: "post",
            asynchronous:true,
            parameters:{
                ndptoid:departamento,
                nivel:2
            },
            onSuccess: function(transport){
                var eiSelect = $("ndepe_destino_nivel3");
                var eiSelect4 = $("ndepe_destino_nivel4");
                var eiSelect5 = $("ndepe_destino_nivel5");
                removeAllOptions(eiSelect);
                removeAllOptions(eiSelect4);
                removeAllOptions(eiSelect5);
                eiSelect.disabled=true;
                eiSelect4.disabled=true;
                eiSelect5.disabled=true;

                var lstDependencias = transport.responseText.evalJSON();
                if (lstDependencias.oficinas.length>0){
                    eiSelect.disabled=false;
                }
                for (i=0;i<lstDependencias.oficinas.length;i++){
                    var eOption = document.createElement("option");
                    eOption.setAttribute("value", lstDependencias.oficinas[i].ndepeIdentificador);
                    eOption.appendChild(document.createTextNode(lstDependencias.oficinas[i].cdepeNombre));
                    eiSelect.appendChild(eOption);
                }
                if (eiSelect.value!= null){
                    fn_cargarUnidadesUsuarios();
                }
            }
        });
    }
}
function fn_cargarUnidadesUsuarios(){
    var departamento = document.getElementById("ndepe_destino_nivel3").value;
    if (departamento!=null && departamento!=""){
        new Ajax.Request("listaDependenciasOficina.jsp",{
            method: "post",
            asynchronous:true,
            parameters:{
                ndptoid:departamento,
                nivel:3
            },
            onSuccess: function(transport){
                var eiSelect = $("ndepe_destino_nivel4");
                var eiSelect5 = $("ndepe_destino_nivel5");
                removeAllOptions(eiSelect);
                removeAllOptions(eiSelect5);
                eiSelect.disabled=true;
                eiSelect5.disabled=true;
                var lstDependencias = transport.responseText.evalJSON();
                if (lstDependencias.oficinas.length>0){
                    eiSelect.disabled=false;
                }
                for (i=0;i<lstDependencias.oficinas.length;i++){
                    var eOption = document.createElement("option");
                    eOption.setAttribute("value", lstDependencias.oficinas[i].ndepeIdentificador);
                    eOption.appendChild(document.createTextNode(lstDependencias.oficinas[i].cdepeNombre));
                    eiSelect.appendChild(eOption);
                }
                if (eiSelect.value!=null){
                    fn_cargarAreasUsuarios();
                }
            }
        });
    }
}

function fn_cargarAreasUsuarios(){
    var departamento = document.getElementById("ndepe_destino_nivel4").value;
    if (departamento!=null && departamento!=""){
        new Ajax.Request("listaDependenciasOficina.jsp",{
            method: "post",
            asynchronous:true,
            parameters:{
                ndptoid:departamento,
                nivel:4
            },
            onSuccess: function(transport){
                var eiSelect = $("ndepe_destino_nivel5");
                removeAllOptions(eiSelect);
                eiSelect.disabled=true;
                var lstDependencias = transport.responseText.evalJSON();
                if (lstDependencias.oficinas.length>0){
                    eiSelect.disabled=false;
                }
                for (i=0;i<lstDependencias.oficinas.length;i++){
                    var eOption = document.createElement("option");
                    eOption.setAttribute("value", lstDependencias.oficinas[i].ndepeIdentificador);
                    eOption.appendChild(document.createTextNode(lstDependencias.oficinas[i].cdepeNombre));
                    eiSelect.appendChild(eOption);
                }
            }
        });
    }
}


function fn_cargarPerfiles(){
    new Ajax.Request("lista-perfil",{
        method: "post",
        asynchronous:true,
        onSuccess: function(transport){
            var eiSelect = $("cboPerfil");
            removeAllOptions(eiSelect);
            var lstPerfiles= transport.responseText.evalJSON();
            for (i=0;i<lstPerfiles.perfil.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstPerfiles.perfil[i].nperfIdentificador);
                eOption.appendChild(document.createTextNode(lstPerfiles.perfil[i].cperfDescripcion));
                eiSelect.appendChild(eOption);
            }
        }
    });

}